package com.example.service;

import com.example.entity.dto.TokenUserInfoDTO;
import com.example.entity.po.UserInfo;
import com.example.entity.vo.PaginationResultVO;
import com.example.entity.query.UserInfoQuery;
import com.example.entity.vo.UserInfoVO;

import java.util.List;
import java.util.Map;

/**
 * @Description:用户信息表 业务接口
 * 
 * @Date:2024/07/12
 */
public interface UserInfoService{
	/**
	 * 根据条件查询列表
	 */
	List<UserInfo> findListByParam(UserInfoQuery param);

	/**
	 * 根据数量查询列表
	 */
	Integer findCountByParam(UserInfoQuery param);

	/**
	 * 分页查询
	 */
	PaginationResultVO<UserInfo> findListByPage(UserInfoQuery param);

	/**
	 * 新增
	 */
	Integer add(UserInfo bean);

	/**
	 * 批量新增
	 */
	Integer addBatch(List<UserInfo> listBean);

	/**
	 * 批量新增/修改
	 */
	Integer addOrUpdateBatch(List<UserInfo> listBean);

	/**
	 * 根据UserId查询
	 */
	UserInfo getUserInfoByUserId (String userId);

	/**
	 * 根据UserId修改
	 */
	Integer updateUserInfoByUserId(UserInfo bean, String userId);

	/**
	 * 根据UserId删除
	 */
	Integer deleteUserInfoByUserId(String userId);

	/**
	 * 根据Email查询
	 */
	UserInfo getUserInfoByEmail (String email);

	/**
	 * 根据Email修改
	 */
	Integer updateUserInfoByEmail(UserInfo bean, String email);

	/**
	 * 根据Email删除
	 */
	Integer deleteUserInfoByEmail(String email);
	/**
	 * 注册
	 * @param email
	 * @param password
	 * @param nickName
	 */
	void register(String email, String nickName, String password);
	/**
	 * 登录
	 *
	 * @param email
	 * @param password
	 */
	UserInfoVO login(String email, String password);



}